#ifndef MARGINVIEW_H
#define MARGINVIEW_H


#include "EditModel.h"


#ifdef SCI_NAMESPACE
namespace Scintilla {
#endif

  void DrawWrapMarker( Surface *surface, PRectangle rcPlace, bool isEndMarker, ColourDesired wrapColour );

  typedef void ( *DrawWrapMarkerFn )( Surface *surface, PRectangle rcPlace, bool isEndMarker, ColourDesired wrapColour );


  class MarginView {
    public:
      Surface *pixmapSelMargin;
      Surface *pixmapSelPattern;
      Surface *pixmapSelPatternOffset1;
      // Highlight current folding block
      HighlightDelimiter highlightDelimiter;

      int wrapMarkerPaddingRight; // right-most pixel padding of wrap markers

      DrawWrapMarkerFn customDrawWrapMarker;

      MarginView();

      void DropGraphics( bool freeObjects );
      void AllocateGraphics( const ViewStyle &vsDraw );
      void RefreshPixMaps( Surface *surfaceWindow, WindowID wid, const ViewStyle &vsDraw );
      void PaintMargin( Surface *surface, int topLine, PRectangle rc, PRectangle rcMargin,
                        const EditModel &model, const ViewStyle &vs );
  };

  #ifdef SCI_NAMESPACE
}
  #endif

#endif
